在 c++ 里面 符号<?= 是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/09/24 05:04:03
看了一段程序
int graf[100][100], n;
int memo[100][100][100];

int rec( int disam, int prosli, int p ) {
if( disam == 1 ) return 0;

int &ref = memo[disam][prosli][p];
if( ref >= 0 ) return ref;

ref = 1000000000;

for( int i = 0; i < n; ++i )
if( i != p && graf[disam][i] >= 1 )
if( graf[disam][i] <= prosli )
ref <?= rec( i, graf[disam][i], disam ) + graf[disam][i];
return ref;
}
不知道 ref <?= rec( i, graf[disam][i], disam ) + graf[disam][i];
这句是什么意思,特别是 <?= 不知道什么意思
我觉得应该有这个符号,估计不是笔误,据说可以运行
完整代码地址:(需要注册)
http://www.topcoder.com/tc?module=HSProblemSolution&cr=12005484&rd=10705&pm=7514

在vc++中编译不通过,但是我看了问题和代码,并做了测试,这个符号等同于吧ref和rec( i, graf[disam][i], disam ) + graf[disam][i]中较小的一个赋值给ref,这样改写后,通过编译并且验证过测试数据,这种写法就是vc不支持,但是意思是这个,至于为什么他能通过编译大概使我们不了解的编译器吧

<表达式1>?<表达式2>:<表达式3>;
"?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值.

的确是小错误,这只是一个赋值语句,正确的如下:

ref = rec( i, graf[disam][i], disam ) + graf[disam][i];

rec(,,)这是递归调用函数。

请教楼主,在看什么算法?如果能说的清楚些就更好解决了。

我这边编译报错啊,可能是哪个人的笔误吧~

用google都搜不到,百度也是

哪有这么个操作符呀,是不是乱码呀